package xyz.gits.modules.base;

import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.TableSupport;

import java.util.List;

/**
 * @author: 读钓
 * @date 2019-05-12 下午 9:16
 */
public class GitsBaseController extends BaseController {

    /**
     * 响应请求分页数据
     */
    protected TableDataInfo getDataTable(IPage result) {
        TableDataInfo rspData = new TableDataInfo();
        rspData.setCode(0);
        rspData.setRows(result.getRecords());
        rspData.setTotal(result.getTotal());
        return rspData;
    }

    /**
     * 获取分页对象
     */
    protected Page getPage(QueryWrapper queryWrapper) {
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = ObjectUtil.isNotEmpty(pageDomain.getPageNum()) ? pageDomain.getPageNum() : 1;
        Integer pageSize = ObjectUtil.isNotEmpty(pageDomain.getPageSize()) ? pageDomain.getPageSize() : 10;
        Page page = new Page<>(pageNum, pageSize);
        queryWrapper.orderBy(StrUtil.isNotEmpty(pageDomain.getOrderByColumn()),
                StrUtil.equals(pageDomain.getIsAsc(), "asc") ? true : false,
                pageDomain.getOrderByColumn());
        return page;
    }
}